package org.link.service;

import java.util.ArrayList;
import java.util.HashMap;

import org.link.bean.Board;
import org.link.dao.BoardDao;

/**
 * 
 * project_name:forumweb
 * package_name:org.link.service
 * file_name:BoardService.java
 * @author Link
 * create_date:2015年10月23日 下午12:39:04
 * modified_date:
 * description: 板块导方法集中处理类
 *
 */
public class BoardService {

	BoardDao boardDao = new BoardDao();
	
	/**
	 * 
	 * description: 查看输入的板块名是否已存在
	 * 2015年10月23日 下午5:20:30
	 * @author Link
	 * @param fatherBoardName
	 * @return
	 *
	 */
	public boolean checkBoardExist(String fatherBoardName){
		return boardDao.checkBoardExist(fatherBoardName);
	}
	
	/**
	 * 
	 * description: 添加父板块并查询出所有板块信息并返回
	 * 2015年10月23日 下午5:29:19
	 * @author Link
	 * @param name
	 * @param desc
	 * @return
	 *
	 */
	public ArrayList<Board> addAndQueryFatherBoard(String name,String desc){
		ArrayList<Board> boards = new ArrayList<Board>();
		if(boardDao.addFatherBoard(name, desc)==1){
			boards = boardDao.queryAllBoard();
		}
		return boards;
	}
	
	/**
	 * 
	 * description: 查询并返回所有板块信息集合
	 * creatTime:2015年10月23日下午9:49:02
	 * @author Link
	 * return type: ArrayList<Board>
	 *
	 */
	public ArrayList<Board> QueryAllBoard(){
		return boardDao.queryAllBoard();
	}
	
	/**
	 * 
	 * description: 查询并返回所有父板块的名称
	 * creatTime:2015年10月23日下午11:21:19
	 * @author Link
	 * return type: ArrayList<String>
	 *
	 */
	public ArrayList<String> queryAllFatherBoard(){
		return boardDao.queryAllFatherBoard();
	}

	/**
	 * 
	 * description: 添加子版块
	 * creatTime:2015年10月24日上午12:12:56
	 * @author Link
	 * return type: boolean
	 *
	 */
	public boolean addchildBoard(String fatherBoardName, String childBoardName,
			String childBoardDesc) {
		if(boardDao.addChildBoard(boardDao.queryFatherBoardId(fatherBoardName), childBoardName, childBoardDesc)==1){
			return true;
		}else{
			return false;
		}
	}
	
	/**
	 * 
	 * description: 查找所有父板块对应的子版块的键值对关系
	 * 2015年10月26日 下午2:00:27
	 * @author Link
	 * @return
	 *
	 */
	public HashMap<String,ArrayList<String>> queryAllChild(){
		HashMap<String,ArrayList<String>> childName = new HashMap<String, ArrayList<String>>();
		ArrayList<String> fatherBoardName = boardDao.queryAllFatherBoard();
		for (String fatherName : fatherBoardName) {
			childName.put(fatherName, boardDao.queryChildName(boardDao.queryFatherBoardId(fatherName)));
		}
		return childName;
	}
	
	/**
	 * 
	 * description: 根据输入的父板块名字查询子版块的集合
	 * 2015年10月27日 下午12:34:37
	 * @author Link
	 * @param fatherBoard
	 * @return
	 *
	 */
	public ArrayList<Board> queryChildBoard(String fatherBoard){
		return boardDao.queryChildBoard(boardDao.queryFatherBoardId(fatherBoard));
	}
	
	/**
	 * 
	 * description: 查询所以父板块集合
	 * 2015年10月27日 下午2:57:31
	 * @author Link
	 * @return
	 *
	 */
	public ArrayList<Board> queryFatherBoard(){
		return boardDao.queryFatherBoard();
	}
	
}





